package edu.mis.modules.customer;

import java.util.List;

import com.jfinal.plugin.activerecord.Record;

import edu.mis.model.Customer;

/**
 * 日志服务类
 * 该类主要用于写业务逻辑（Customer没有复杂逻辑，只有调用dao），sql语句尽量不写在此类中，写在Model中
 * 如果不设计service层，则直接在controller中调用模型dao
 *
 */
public class CustomerService {
	
	
	/**
	 * 生成随机订单号，并且不与已经存在数据库中的重复
	 * @return
	 */
	public int ramdomCustomerNumber() {
		int customerNumber = (int)(Math.random()*100000+1);
		
		while (Customer.dao.findCustomerByCustomerNumber(customerNumber)!=null) {
			customerNumber = (int)(Math.random()*100000+1);
		}
			
		return customerNumber;
	}
	
	
	/**
	 * 查询所有用户及其权限
	 * @return
	 */
	public List<Record> findAllCustomerWithContionName(){
		return Customer.dao.findAllRecord();
	}
	
	
	
	/**
	 * 添加日志
	 * @param customer
	 * @return
	 */
	public boolean saveCustomer(Customer customer){  //service命名建议完整，见名知意。如此处的saveCustomer，参数尽量用对象
		if(customer.findCustomerByCustomerNumber(customer.getCustomerNumber())==null) {
			return customer.save();
		}
		else {
			return false;
		}
	}
	
	/**
	 * 修改日志
	 * @param customer
	 * @return
	 */
	public boolean updateCustomer(Customer customer){
		return customer.update();
	}
	
	/**
	 * 删除日志
	 * @param customerId
	 * @return
	 */
	public boolean deleteCustomerByCustomerId(int customerId) {
		return Customer.dao.deleteById(customerId);
	}
	
	/**
	 * 根据ID得到日志
	 * @param customerId
	 * @return
	 */
	public Customer findCustomerByCustomerId(int customerId) {
		return Customer.dao.findById(customerId);
	}
	
	/**
	 * 查询所有日志
	 * @return
	 */
	public List<Customer> findAllCustomer(){   //本项目使用dataTables支持前端分页。如果要支持后端分页，可调用Customer.dao.paginate(pageNumber, pageSize, sqlPara)
		return Customer.dao.findAll();
	}
	
	/**
	 * 根据会员编号得到会员
	 * @param customerNumber
	 * @return
	 */
	public Customer findCustomerByCustomerNumber(int customerNumber) {
		return Customer.dao.findCustomerByCustomerNumber(customerNumber);
	}
	
}
